Encoding method, decoding method, encoding apparatus, and decoding apparatus

ABSTRACT

An image encoding method including: a constraint information generating step of generating tile constraint information indicating whether or not there is a constraint in filtering on boundaries between adjacent tiles among a plurality of tiles obtained by dividing a picture, and storing the tile constraint information into a sequence parameter set; and a filter information generating step of generating, for each of the boundaries, one of a plurality of filter information items respectively indicating whether or not filtering is executed on the boundaries, and storing the plurality of filter information items into a plurality of picture parameter sets, wherein, in the filter information generating step, the plurality of filter information items which indicate identical content are generated when the tile constraint information indicates that there is the constraint in the filtering.

FIELD

One or more exemplary embodiments disclosed herein relate generally toan image encoding method and an image decoding method.

BACKGROUND

As conventional image encoding methods, the ITU-T Standards called H.26xor the ISO/IEC standards called MPEG-x have been known (for example, seeNon Patent Literature 1).

Furthermore, as a new standard, the High Efficiency Video Coding (HEVC)method (for example, see Non Patent Literature 2) has been considered.

CITATION LIST Non Patent Literature

NPL 1

ISO/IEC 14496-10 “MPEG-4 Part 10 Advanced VIDEO Coding”

NPL 2

Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 andISO/IEC JTC1/SC29/WG11 7th Meeting: Geneva, CH, -21-30 Nov. 2011,JCTVC-G1103, “Working Draft 5 of High Efficiency Video coding”,http://phenix.itsudparis.eu/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC-G1103-v2.zip

SUMMARY Technical Problem

In this way, in such image encoding method and decoding method, an imageis divided into a plurality of areas, and the areas obtained through thedivision are subjected to parallel processing.

In view of this, one non-limiting and exemplary embodiment provides animage encoding method and an image decoding method for easily realizingparallel processing.

Solution to Problem

In one general aspect, the techniques disclosed here feature an imageencoding method including: a constraint information generating step ofgenerating tile constraint information indicating whether or not thereis a constraint in filtering on boundaries between adjacent tiles amonga plurality of tiles obtained by dividing a picture, and storing thetile constraint information into a sequence parameter set; and a filterinformation generating step of generating, for each of the boundaries,one of a plurality of filter information items respectively indicatingwhether or not filtering is executed on the boundaries, and storing theplurality of filter information items into a plurality of pictureparameter sets, wherein, in the filter information generating step, theplurality of filter information items which indicate identical contentare generated when the tile constraint information indicates that thereis the constraint in the filtering.

These general and specific aspects may be implemented using a system, amethod, an integrated circuit, a computer program, or acomputer-readable recording medium such as a CD-ROM, or any combinationof systems, methods, integrated circuits, computer programs, orcomputer-readable recording media. Additional benefits and advantages ofthe disclosed embodiments will be apparent from the Specification andDrawings. The benefits and/or advantages may be individually obtained bythe various embodiments and features of the Specification and Drawings,which need not all be provided in order to obtain one or more of suchbenefits and/or advantages.

Advantageous Effects

An image encoding method and an image decoding method according to oneor more exemplary embodiments or features disclosed herein easilyrealize parallel processing.

BRIEF DESCRIPTION OF DRAWINGS

These and other advantages and features will become apparent from thefollowing description thereof taken in conjunction with the accompanyingDrawings, by way of non-limiting examples of embodiments disclosedherein.

FIG. 1 is a diagram illustrating an example of a scan order according toan embodiment disclosed herein.

FIG. 2 is a diagram illustrating an example of a scan order according toan embodiment disclosed herein.

FIG. 3 is a diagram illustrating an example of tiles and slices obtainedby diving an image according to an embodiment disclosed herein.

FIG. 4 is a diagram illustrating an example of tiles and slices obtainedby dividing an image according to an embodiment disclosed herein.

FIG. 5 is a flowchart of decoding processes according to Embodiment 1disclosed herein.

FIG. 6 is a flowchart of determination processes according to acomparison example with respect to Embodiment 1 disclosed herein.

FIG. 7 is a flowchart of determination processes according to Embodiment1.

FIG. 8 is a diagram illustrating a syntax of a slice header according toEmbodiment 1.

FIG. 9 is a diagram illustrating an example of a structure of a streamaccording to Embodiment 1.

FIG. 10 is a diagram illustrating an example of a structure of a streamaccording to the comparison example with respect to Embodiment 1.

FIG. 11 is a flowchart of decoding processes according to Embodiment 1.

FIG. 12 is a block diagram of an image decoding apparatus according toEmbodiment 1.

FIG. 13 is a block diagram of an image encoding apparatus according toEmbodiment 2.

FIG. 14 is a flowchart of decoding processes according to the comparisonexample with respect to Embodiment 3.

FIG. 15 is a flowchart of decoding according to Embodiment 3.

FIG. 16 is a diagram illustrating a syntax of a sequence parameter setaccording to Embodiment 3.

FIG. 17 is a diagram illustrating a syntax of a sequence parameter setaccording to Embodiment 3.

FIG. 18 is a diagram illustrating an example of a flag according toEmbodiment 3.

FIG. 19A is a flowchart of decoding processes according to Embodiment 3.

FIG. 19B is a flowchart of decoding processes according to Embodiment 3.

FIG. 19C is a flowchart of decoding processes according to Embodiment 3.

FIG. 19D is a flowchart of decoding processes according to Embodiment 3.

FIG. 20A is a diagram illustrating an example of a structure of a sliceheader according to a comparison example with respect to Embodiment 4.

FIG. 20B is a diagram illustrating an example of a structure of a sliceheader according to Embodiment 4.

FIG. 21 is a flowchart of decoding processes according to Embodiment 4.

FIG. 22 is a conceptual diagram illustrating a data structure accordingto Embodiment 5.

FIG. 23 is a flowchart of encoding and decoding processes according toEmbodiment 5.

FIG. 24 is a flowchart of encoding and decoding processes according toEmbodiment 6.

FIG. 25 shows an overall configuration of a content providing system forimplementing content distribution services.

FIG. 26 shows an overall configuration of a digital broadcasting system.

FIG. 27 shows a block diagram illustrating an example of a configurationof a television.

FIG. 28 shows a block diagram illustrating an example of a configurationof an information reproducing/recording unit that reads and writesinformation from and on a recording medium that is an optical disk.

FIG. 29 shows an example of a configuration of a recording medium thatis an optical disk.

FIG. 30A shows an example of a cellular phone.

FIG. 30B is a block diagram showing an example of a configuration of acellular phone.

FIG. 31 illustrates a structure of multiplexed data.

FIG. 32 schematically shows how each stream is multiplexed inmultiplexed data.

FIG. 33 shows how a video stream is stored in a stream of PES packets inmore detail.

FIG. 34 shows a structure of TS packets and source packets in themultiplexed data.

FIG. 35 shows a data structure of a PMT.

FIG. 36 shows an internal structure of multiplexed data information.

FIG. 37 shows an internal structure of stream attribute information.

FIG. 38 shows steps for identifying video data.

FIG. 39 shows an example of a configuration of an integrated circuit forimplementing the moving picture encoding method according to each ofembodiments.

FIG. 40 shows a configuration for switching between driving frequencies.

FIG. 41 shows steps for identifying video data and switching betweendriving frequencies.

FIG. 42 shows an example of a look-up table in which video datastandards are associated with driving frequencies.

FIG. 43A is a diagram showing an example of a configuration for sharinga module of a signal processing unit.

FIG. 43B is a diagram showing another example of a configuration forsharing a module of the signal processing unit.

DESCRIPTION OF EMBODIMENTS

(Underlying Knowledge Forming Basis of the Present Disclosure)

In relation to the conventional technique disclosed in the Backgroundsection, the inventors have found the problem below.

In the ITU-T Standards called as H.26x or the ISO/IEC standards calledMPEG-x, signals of an image is processed in a raster scan orderillustrated in FIG. 1. In addition, the image is divided into aplurality of units called slices. The respective slices include signalswhich are serial in the raster scan order. Encoding is performed inunits of a slice.

In addition, in the HEVC method, a tile method is also considered. Inthe tile method, an image is divided into a plurality of rectangularunits (tiles). Signals included in the respective rectangles areprocessed in the raster scan order on a per resulting rectangle basis(see FIG. 2). The tile method makes it possible to divide an image inthe vertical direction, to thereby reduce a line memory.

For example, in the example illustrated in FIG. 3, the portions enclosedby solid lines show tiles, and the portions enclosed by dotted linesshow slices obtainable by dividing the tiles. FIG. 3 illustrates anexample in which tile boundaries do not extend beyond any of sliceboundaries. However, as shown in FIG. 4, a tile boundary may passthrough a slice.

However, the inventors have found that the above-described method has aproblem, when executing parallel processing on tile areas obtained bydividing an image, that it is difficult to find the top portions of thetile areas which are the targets in parallel processing.

More specifically, a pre-process is required to determine whether or notthe image decoding apparatus can execute parallel processing (paralleldecoding) on a decoding target bitstream. This pre-process increasesprocessing time, which makes it difficult to realize high-speedprocessing. This pre-process otherwise necessitates increase in acircuit scale.

This embodiment describes an image decoding apparatus capable ofexecuting parallel decoding, and determining whether or not a decodingtarget bitstream is a stream which can be processed in paralleldecoding, or when the stream can be processed in the parallel decoding,quickly determining a point at which parallel decoding processes can beexecuted separately.

The image encoding method according to an embodiment includes: aconstraint information generating step of generating tile constraintinformation indicating whether or not there is any constraint in thefiltering on a plurality of tiles obtained by diving a picture, andencoding the tile constraint information; and when the tile constraintinformation indicates that there is a constraint in the filtering,determining whether or not filtering is executed on the boundariesbetween the plurality of tiles, based on a filter information itemindicating whether or not filtering is executed on one of the boundariesbetween the plurality of tiles.

In this way, it is possible to suppress a switch between execution ornon-execution of filtering on a per tile boundary basis. In this way,the image encoding method facilitates parallel processing.

For example, in the constraint information generating step, tileconstraint information may be generated for each picture, or tileconstraint information for each picture may be encoded.

For example, the image encoding method may further include an encodingstep of encoding a filter information item indicating whether or notfiltering is executed on a tile boundary among a plurality of tileboundaries when the tile constraint information indicates that there isthe constraint in the filtering, and skipping encoding informationindicating whether or not filtering is executed on the tile boundariesother than the tile boundary.

For example, the image encoding method may further include an encodingstep of encoding filter information items indicating identical content,in association with the plurality of respective tile boundaries, whenthe tile constraint information indicates that there is the constraint.

In addition, the image encoding method according to an embodimentincludes: a constraint information decoding step of decoding tileconstraint information indicating whether or not there is any constraintin the filtering on a plurality of tiles obtained by dividing a picture,and, when the tile constraint information indicates that there is aconstraint, determining whether or not filtering is executed on theboundaries between the plurality of tiles, based on a filter informationitem indicating whether or not filtering is executed on one of theboundaries between the plurality of tiles.

In this way, it is possible to suppress a switch between execution ornon-execution of filtering on a per tile boundary basis. In this way,the image decoding method facilitates parallel processing.

For example, in the constraint information decoding step, the tileconstraint information provided for each picture may be decoded.

For example, the image decoding method may further include a decodingstep of decoding a filter information item indicating whether or notfiltering is executed on a tile boundary among a plurality of tileboundaries when the tile constraint information indicates that there isthe constraint, and skipping decoding information indicating whether ornot filtering is executed on the tile boundaries other than the tileboundary.

For example, the image decoding method may further include a decodingstep of decoding a plurality of filter information items indicatingidentical content and associated respectively with the plurality of tileboundaries, when the tile constraint information indicates that there isthe constraint in the filtering.

In addition, an image encoding apparatus according to an embodimentincludes: an encoding unit which generates tile constraint informationindicating whether or not there is any constraint in the filtering on aplurality of tiles obtained by dividing a picture, and encoding the tileconstraint information; and a determining unit which determines whetheror not filtering is executed on the plurality of tile boundaries, basedon a filter information item indicating whether or not filtering isexecuted on a tile boundary among the plurality of tile boundaries, whenthe tile constraint information indicates that there is a constraint inthe filtering.

With this structure, it is possible to suppress a switch betweenexecution or non-execution of filtering on a per tile boundary basis. Inthis way, the image encoding apparatus facilitates parallel processing.

In addition, an image decoding apparatus according to an embodimentincludes: a decoding unit which decodes tile constraint informationindicating whether or not there is any constraint in the filtering on aplurality of tiles obtained by dividing a picture; and a determiningunit which determines whether or not filtering is executed on theplurality of tile boundaries, based on a filter information itemindicating whether or not filtering is executed on a tile boundary amongthe plurality of tile boundaries, when the tile constraint informationindicates that there is a constraint in the filtering.

With this structure, it is possible to suppress a switch betweenexecution or non-execution of filtering on a per tile boundary basis. Inthis way, the image decoding apparatus facilitates parallel processing.

In addition, an image encoding and decoding apparatus according to anembodiment includes the image encoding apparatus and the image decodingapparatus.

In addition, an image encoding method according to an aspect of thepresent disclosure is an image encoding method including: a constraintinformation generating step of generating tile constraint informationindicating whether or not there is a constraint in filtering onboundaries between adjacent tiles among a plurality of tiles obtained bydividing a picture, and storing the tile constraint information into asequence parameter set; and a filter information generating step ofgenerating, for each of the boundaries, one of a plurality of filterinformation items respectively indicating whether or not filtering isexecuted on the boundaries, and storing the plurality of filterinformation items into a plurality of picture parameter sets, wherein,in the filter information generating step, the plurality of filterinformation items which indicate identical content are generated whenthe tile constraint information indicates that there is the constraintin the filtering.

In addition, an image encoding method according to an aspect of thepresent disclosure is an image decoding method of decoding a streamgenerated using the image encoding method, the image decoding methodincluding: a first obtaining step of obtaining the sequence parameterset from the stream; a second obtaining step of obtaining the tileconstraint information included in the sequence parameter set; and adetermining step of determining whether filtering is executed on all ofthe boundaries in a plurality of the picture or filtering is notexecuted on the boundaries, when the tile constraint informationindicates that there is the constraint in the filtering.

For example, the image decoding method may further include followingsteps performed when the tile constraint information indicates thatthere is the constraint in the filtering: a third obtaining step ofobtaining one of the plurality of picture parameter sets from thestream; and a fourth obtaining step of obtaining, from the one of theplurality of picture parameter sets, at least one filter informationitem among the plurality of filter information items, wherein, in thedetermining step, whether filtering is executed on all of the boundariesin a plurality of the picture or filtering is not executed on theboundaries is determined based on the at least one filter informationitem, when the tile constraint information indicates that there is theconstraint in the filtering.

For example, in the fourth obtaining step, the one of the plurality offilter information items may be obtained when the tile constraintinformation indicates that there is the constraint in the filtering, andin the determining step, whether filtering may be executed on all of theboundaries in a plurality of the picture or filtering is not executed onthe boundaries is determined based on the one filter information item.

For example, in the fourth obtaining step, obtainment of the pluralityof filter information items except for the one filter information itemmay be skipped, when the tile constraint information indicates thatthere is the constraint in the filtering.

In addition, an image encoding apparatus according to an aspect of thepresent disclosure includes: a constraint information generating unitconfigured to generate tile constraint information indicating whether ornot there is a constraint in filtering on boundaries between adjacenttiles among a plurality of tiles obtained by dividing a picture, andstore the tile constraint information into a sequence parameter set; anda filter information generating unit configured to generate, for each ofthe boundaries, one of a plurality of filter information itemsrespectively indicating whether or not filtering is executed on theboundaries, and storing the plurality of filter information items into aplurality of picture parameter sets, wherein the filter informationgenerating unit is configured to generate the plurality of filterinformation items which indicate identical content when the tileconstraint information indicates that there is the constraint in thefiltering.

In addition, an image decoding apparatus according to an aspect of thepresent disclosure is an image decoding apparatus which decodes a streamgenerated by the image encoding apparatus, and includes: a firstobtaining unit configured to obtain the sequence parameter set from thestream; a second obtaining unit configured to obtain the tile constraintinformation included in the sequence parameter set; and a determiningunit configured to determine whether filtering is executed on all of theboundaries in a plurality of the picture or filtering is not executed onthe boundaries, when the tile constraint information indicates thatthere is the constraint in the filtering.

These general and specific aspects may be implemented using a system, amethod, an integrated circuit, a computer program, or acomputer-readable recording medium such as a CD-ROM, or any combinationof systems, methods, integrated circuits, computer programs, orcomputer-readable recording media. Hereinafter, embodiments aredescribed with reference to the drawings.

It is to be noted that each of the exemplary embodiments described belowshows a general or specific example. The numerical values, shapes,materials, structural elements, the arrangement and connection of thestructural elements, steps, the processing order of the steps etc. shownin the following exemplary embodiments are mere examples, and thereforedo not limit the scope of the appended Claims and their equivalents.Therefore, among the structural elements in the following exemplaryembodiments, structural elements not recited in any one of theindependent claims which define the most generic concept are describedas arbitrary structural elements.

Embodiment 1

In this embodiment, a description is given of parallel decoding in animage decoding apparatus capable of performing parallel decoding. Inthis embodiment, a bitstream includes information with which the imagedecoding apparatus can easily execute parallel processing.

First, a description is given of decoding performed in the case where aslice header is always disposed at the top of each tile.

The tile method makes it possible to evenly divide an image intorectangles (in a matrix), to thereby reduce the width of resulting areasin the horizontal direction. In this way, the tile method provides anadvantageous effect of reducing a memory size required for an imagehaving a large width in the horizontal direction (for example, an imagehaving a resolution called 4K or 8K). In addition, the tile method makesit easier to evenly divide pixel data in a tile area, which facilitatesparallel processing. For this reason, it is important to start paralleldecoding from the top of a tile in order to execute parallel decodingefficiently.

It is to be noted that the entropy decoding unit is configured to searchfor only a slice header in advance to obtain header information, tothereby easily detect the top position of the slice header. For thisreason, with the restricted structure, a slice header is always presentat the top position of a tile. Thus, the image decoding apparatus caneasily determine, using the slice header, the start point of a tile,that is, the start location for parallel decoding. Furthermore, sinceinformation necessary for decoding is included in the slice header,there is no need to buffer information of the slice header prior todecoding.

A method for easily realizing this structure is described in Embodiment3.

FIG. 5 is a flowchart indicating a flow of parallel decoding processesin the case of this structure. First, the image decoding apparatusdecodes a slice header (S101). Next, the image decoding apparatusdetermines whether or not this slice is positioned at the top of thetile (S102). For example, in the case of a slice header X illustrated inFIG. 3, this slice is not positioned at the top of a tile (No in S102),and thus the image decoding apparatus decodes the next slice header(S101). In the case of a slice header Y illustrated in FIG. 3, thisslice is positioned at the top of a slice (Yes in S102), the imagedecoding apparatus starts parallel decoding at the position (S103). Thissequence of processes is executed repeatedly until processing on thewhole image finishes. When all of the functions of parallel decodingunits included in the image decoding apparatus are in use, the imagedecoding apparatus waits until the decoding units become available. Inthe cases other than the above case, the next slice header is obtainedin parallel with decoding on a slice. In this way, obtainment of theslice header sets a start of parallel decoding.

Next, a description is given of a method of determining whether or not aslice header is positioned at the top of a tile.

First, a determination method in a comparison example is described usingFIG. 6 in comparison with this embodiment. In this determination method,an image decoding apparatus firstly obtains position informationindicating a position of a slice included in a slice header (S201). Inaddition, the image decoding apparatus obtains, in advance, tiledivision information indicating how a tile is divided, and stores it ina memory. Next, the image decoding apparatus obtains the top position ofthe next tile, using the tile division information (S202). Lastly, theimage decoding apparatus compares the position of a processing targetslice (the top position of the slice) and the top position of the tile,and when these two positions are identical to each other, the sliceheader is determined to be at the top of a tile. On the other hand, whenthese two positions are different from each other, the slice header isdetermined to be at a position other than the top of a tile (S203).

In this way, the determination method according to this comparisonexample requires a large number of steps for starting parallel decoding,such as a process for monitoring a currently being processed position, aprocess for accessing a memory, a process for comparing two positions,and so on. In this way, the determination method produces processingtime losses.

Next, a determination method according to this embodiment is describedusing FIG. 7. In this embodiment, a 1-bit flag indicating whether or nota slice is positioned at the top of a tile is included in a slice headerof the slice. As illustrated in FIG. 7, the image decoding apparatusobtains this flag (S111), and checks the value of the flag (S112), andcan thereby determine whether or not the slice is positioned at the topof the tile. In this way, the image decoding method according to thisembodiment makes it possible to determine whether or not the slice ispositioned at the top of the tile, with a small amount of processing.

FIG. 8 is a diagram illustrating a syntax of a slice header. The 1-bitflag is, for example, a start_tile_in_slice_flag illustrated in FIG. 8.When the start_tile_in_slice_flag indicates “1”, the slice starts at theupper-left end position of a tile (the top of the tile). In the oppositecase (where the start_tile_in_slice_flag indicates “0”), the slice doesnot start at the upper-left end position of the tile. The flag isdisposed at the top of the slice header here, but the position of theflag is not limited thereto. It is to be noted that it is possible tostart parallel decoding more quickly as the position of the flag becomescloser to the top of the slice header.

FIG. 9 is a diagram illustrating an exemplary structure of a stream inthis case. FIG. 10 is a diagram illustrating an exemplary structure of astream in a case where such a flag is not used. The position information(or tile division information) indicating the position of a slice isdisposed at a middle part of the slice header. Thus, in order for theobtainment of the position information, the image decoding apparatusinevitably obtains information that is unnecessary in the case where theslice is not at the top of a tile (in the case where parallel decodingstarts at a position other than the top of the slice). Thus, such aredundant process occurs when the flag is not used. On the other hand,when a 1-bit flag is disposed at the top of the slice header asillustrated in FIG. 9 or a position close to the top, the image decodingapparatus can immediately start parallel processing.

Next, a description is given of a case where a slice header is notlocated at the top of a tile as illustrated in FIG. 4. Since the tilemethod makes it possible to evenly divide an image into rectangles, itis important to start parallel decoding from the top of a tile in orderto efficiently execute parallel processing.

In this structure, the top of a slice is not always positioned at thetop of a tile. Thus, it is necessary to obtain the top position of atile and information of a slice header necessary for starting decodingthe tile. For this reason, slice headers need to be scanned as in thecase of FIG. 3.

The flow of these processes is described with reference to FIG. 11.First, the image decoding apparatus decodes a slice header (S121). Here,in an exemplary case of a slice header A illustrated in FIG. 4, the topposition of the slice header and the top position of a tile match (Yesin S122). Thus, the image decoding apparatus starts parallel decoding onthe tile (S123).

On the other hand, in the case of a slice header B illustrated in FIG.4, the top position of the slice header and the top position of a tiledo not match (No in S122). Thus, a transition to Step S124 is made.

Next, the image decoding apparatus checks whether or not positioninformation of a current tile to the next tile is included (S124). Thisposition information indicates a distance from the current tile to thenext tile in the case where a plurality of tiles are included in aslice. When the position information is included (Yes in S124), theimage decoding apparatus decodes the position information (S125),performs a file seek (search) to reach the next tile according to theposition information obtained through the decoding, and performsparallel decoding (S126). On the other hand, when no such positioninformation is included (No in S124), the image decoding apparatusdecodes the header of the next slice (S121). This sequence of processesis executed repeatedly until processing on the whole image finishes.When all of the functions of parallel decoding units included in theimage decoding apparatus are in use, the image decoding apparatus waitsuntil the decoding units become available.

When slice headers are not always positioned at the tops of tiles insuch a case, complex processing is required compared to the case whereslice headers are always positioned at the tops of tiles. Even in thiscase, it is possible to reduce the amount of such complex processing bydisposing a flag start_tile_in_slice_flag described earlier withreference to FIG. 8 at the top of a slice. In this way, it is possibleto realize faster decoding.

The parallel decoding according to this embodiment is executed by animage decoding apparatus which decodes encoded image data which havebeen compression-encoded. FIG. 12 is a block diagram illustrating anexemplary structure of an image decoding apparatus 400 according to thisembodiment. The parallel decoding processes illustrated in FIG. 5, 7, or11 are executed by an entropy decoding unit 410.

The image decoding apparatus 400 generates a decoded signal by decodingencoded image data which have been compression-encoded (an inputsignal). For example, the image decoding apparatus 400 receives theencoded data as an input signal, on a per block basis. The imagedecoding apparatus 400 reconstructs the image data by performingvariable length decoding, inverse quantization, and inverse transform onthe input signal.

As illustrated in FIG. 12, the image decoding apparatus 400 includes: anentropy decoding unit 410; an inverse quantization and inverse transformunit 420; an adder 425; a deblocking filter 430; a memory 440; an intraprediction unit 450; a motion compensation unit 460; and an intra/interswitch 470.

The entropy decoding unit 410 reconstructs quantized coefficients byperforming variable length decoding on the input signal (an inputstream). Here, the input signal (input stream) is a decoding targetsignal and corresponds to data of each block of the encoded image data.In addition, the entropy decoding unit 410 obtains motion data from theinput signal, and outputs the obtained motion data to the motioncompensation unit 460.

The inverse quantization and inverse transform unit 420 reconstructstransform coefficients by performing inverse quantization on thequantized coefficients reconstructed by the entropy decoding unit 410.The inverse quantization and inverse transform unit 420 thenreconstructs a prediction error by performing inverse transform on thereconstructed transform coefficients.

The adder 425 generates a decoded image by adding the reconstructedprediction error and the prediction signal.

The deblocking filter 430 performs deblocking filtering on the generateddecoded image. The decoded image subjected to the deblocking filteringis output as a decoded signal.

The memory 440 is a memory for storing reference images for use inmotion compensation. More specifically, the memory 440 stores thedecoded image subjected to the deblocking filtering.

The intra prediction unit 450 generates a prediction signal (intraprediction signal) by performing intra prediction. More specifically,the intra prediction unit 450 generates an intra prediction signal byperforming intra prediction with reference to an image located aroundthe decoding target block (input signal) in a decoded image generated bythe adder 425.

The motion compensation unit 460 generates a prediction signal (interprediction signal) by performing motion compensation on the motion dataoutput from the entropy decoding unit 410.

The intra/inter switch 470 selects one of an intra prediction signal andan inter prediction signal, and outputs the selected signal as aprediction signal to the adder 425.

With the structure, the image decoding apparatus 400 according to thisembodiment decodes the encoded image data which have been compressionencoded.

As described above, the image decoding apparatus and the image decodingmethod according to this embodiment makes it possible to easilydetermine a processing start point in a bitstream which is suitable forthe structure of the image decoding apparatus. In other words, the imagedecoding apparatus and the image decoding method make it possible toeasily determine whether or not the position searched by parsing a sliceheader is at the top of a tile. In this way, it is possible to realizethe image decoding apparatus for faster processing.

In addition, with this structure, it is possible to easily estimateprocessing time. In this way, it is possible to realize the imagedecoding apparatus in form of a fast operation circuit for use in, forexample, real-time reproduction of a high-resolution video etc.

Embodiment 2

In this embodiment, descriptions are given of an image encoding methodfor generating an encoded bitstream which facilitates execution ofparallel decoding and transmitting the encoded bitstream, and an imageencoding apparatus which performs the image encoding method. The imageencoding apparatus transmits, to an image decoding apparatus,information indicating whether or not the position of a slice header isat the top of a tile. In this way, the image encoding apparatus cangenerate a bitstream which increase a parallel degree in decodingprocessing.

The image encoding apparatus according to this embodiment determineswhether or not the position of a slice header is at the top position ofa tile when encoding the slice header. When the position of the sliceheader is at the top of the tile, for example, a flagstart_tile_in_slice_flag illustrated in FIG. 8 is described in the sliceheader.

By doing so, the image encoding apparatus is capable of generating anencoded bitstream with which parallel decoding can be started easily bythe image decoding apparatus capable of performing parallel decoding asdescribed in Embodiment 1.

FIG. 13 is a block diagram illustrating an exemplary structure of animage encoding apparatus according to this embodiment. The imageencoding apparatus 200 illustrated in FIG. 13 includes: a subtracter205; a transform and quantization unit 210; an entropy encoding unit220; an inverse quantization and inverse transform unit 230; and anadder 235; a deblocking filter 240; a memory 250; an intra predictionunit 260; a motion estimation unit 270; a motion compensation unit 280;and an intra/inter switch 290.

The subtracter 205 calculates a difference between an input signal and aprediction signal, that is, a prediction error.

The transform and quantization unit 210 generates transform coefficientsin a frequency domain by transforming the prediction error in a spatialdomain. For example, the transform and quantization unit 210 generatestransform coefficients by performing Discrete Cosine Transform (DCT) onthe prediction error. Furthermore, the transform and quantization unit210 generates transform coefficients by quantizing the transformcoefficients.

The entropy encoding unit 220 generates an encoded signal by performingvariable length encoding on the quantized coefficients. In addition, theentropy encoding unit 220 encodes motion data (for example, a motionvector) estimated by the motion estimation unit 270, and outputs anencoded signal including the motion data.

The inverse quantization and inverse transform unit 230 reconstructstransform coefficients by performing inverse quantization on thequantized coefficients. Furthermore, the inverse quantization andinverse transform unit 230 reconstructs a prediction error by performinginverse transform on the reconstructed transform coefficients. Thereconstructed prediction error does not match a prediction error whichis generated by the subtracter 205 due to information loss inquantization. In other words, the reconstructed prediction errorincludes a quantization error.

The adder 235 generates a local decoded image by adding thereconstructed prediction error and the prediction signal.

The deblocking filter 240 performs deblocking filtering on the generatedlocal decoded image.

The memory 250 is a memory for storing reference images for use inmotion compensation. More specifically, the memory 250 stores the localdecoded image subjected to the deblocking filtering.

The intra prediction unit 260 generates a prediction signal (intraprediction signal) by performing intra prediction. More specifically,the intra prediction unit 260 generates an intra prediction signal byperforming intra prediction with reference to an image located aroundthe encoding target block (input signal) in a local decoded imagegenerated by the adder 235.

The motion estimation unit 270 estimates motion data (for example, amotion vector) between the input signal and a reference image stored inthe memory 250.

The motion compensation unit 280 generates a prediction signal (interprediction signal) by performing motion compensation on the estimatedmotion data.

The intra/inter switch 290 selects one of an intra prediction signal andan inter prediction signal, and outputs the selected signal as aprediction signal to the subtracter 205 and the adder 235.

With the structure, the image encoding apparatus 200 according to thisembodiment compression-encodes the image data.

Here, the process for determining whether or not a slice header is atthe top of a tile and the flag encoding process are performed by theentropy encoding unit 220.

As described above, the image encoding apparatus and the image encodingmethod according to this embodiment are intended to transmit informationrelated to a decoding order to the image decoding apparatus. In thisway, the image encoding apparatus and the image encoding method make itpossible to generate an encoded signal (bitstream) with which the imagedecoding apparatus can perform fast processing.

Embodiment 3

In this embodiment, a description is given of a structure of an encodedbitstream which facilitates parallel processing in the case where thetop of a tile is always a slice header as illustrated in FIG. 3.

First, the processing in a comparison example in this embodiment isdescribed with reference to FIG. 14. First, the image decoding apparatusobtains a sequence parameter set (SPS) (S231). Next, the image decodingapparatus decodes a flag A for facilitating parallel processing includedin an SPS (S232). Next, the image decoding apparatus decodes a flag Bfor facilitating parallel processing included in a picture parameter set(PPS) (S233). In addition, the image decoding apparatus decodes a flag Cfor facilitating parallel processing included in a PPS (S234).

All of these flags A to C are parameters for facilitating parallelprocessing. Next, the image decoding apparatus determines whether or notthese parameters match a parallel processing requirement (also referredto as a constraint_tile set) included in the image decoding apparatus(S235). In other words, the image decoding apparatus determines, usingthese parameters, whether or not the image decoding apparatus has afunction for performing parallel decoding on a processing target stream.When these parameters match the parallel processing requirement includedin the image decoding apparatus (Yes in S235), the image decodingapparatus determines whether or not the processing target stream can beprocessed in parallel decoding, and performs parallel decoding on thestream (S236). Specifically, the parallel decoding here is processingdescribed in Embodiment 1.

On the other hand, when these parameters do not match the parallelprocessing requirement included in the image decoding apparatus (No inS235), the image encoding apparatus performs normal decoding instead ofparallel decoding (S237).

However, in this case, a large number of flags are necessary fordetermining whether or not parallel decoding is possible. In addition,it is difficult to manage parameter relationships which can be processedin parallel decoding. In this embodiment, a flag calledconstraint_tile_flag indicating a requirement for parallel decoding isadded to an SPS.

FIG. 15 is a flowchart of an image decoding processes according to thisembodiment.

As illustrated in FIG. 15, the image decoding apparatus obtains the SPS,and decodes the flag included in the SPS (S131). When the flag indicatesthat parallel decoding is possible (Yes in S132), the image decodingapparatus sets the parameter set which facilitates predeterminedparallel decoding (S133), and executes parallel decoding (S134).

On the other hand, when the flag indicates that parallel decoding isimpossible (No in S132), the image decoding apparatus obtains theparameters (flags A to C) as in the case of FIG. 14 (S135 to S137), andmakes a determination using the obtained parameters (S138). Here, adetermination that parallel decoding is possible is made only when thestream is suitable for the image decoding apparatus. Depending on thedetermination result, either parallel decoding (S134) or normal decoding(S139) is executed, as in the case of FIG. 14.

It is noted that indices such as 0, 1, 2, 3 indicating parallel degreelevels may be used instead of the flags indicating whether paralleldecoding is possible. In this case, in Step S132, when a value of anindex indicates a mismatch with a parallel degree corresponding to theimage decoding apparatus, a transition to Step S133 is made, andotherwise, a transition to Step S135 is made.

FIGS. 16, 17, and 18 illustrate specific examples of flags A, B, and C.Here, the meaning of a parameter is the same as described in Non-patentLiterature 2, unless otherwise specified.

Here, flags loop_filter_across_tile_flag, loop_filter_across_slice_flag,and tile_boundary_independence_flag indicate whether or not a filter isapplied to a boundary between tiles or slices. When a filter is applied,previously decoded images need to be stored in a memory, which is notsuitable for fast parallel processing. Parallel processing becomes moredifficult when execution or non-execution of filtering on each boundarybetween tiles is switched within a picture.

The use of tiles having no dependency on any of the other tiles furtherfacilitates parallel processing. Here, by disposing a slice header atthe top of a tile, it is also possible to reset a state in arithmeticencoding. Thus, with the structure, it is possible to perform fastparallel decoding.

FIG. 19A illustrates a processing example in this case. When an SPSincludes a flag constraint_tile_flag (Yes in S141), the image decodingapparatus (or the image encoding apparatus) skips decoding (or encoding)flags tile_boundary_independence_flag, loop_filter_across_tile_flag, andloop_filter_across_slice_flag (S142). On the other words, when an SPSincludes a flag constraint_tile_flag (No in S141), the image decodingapparatus (or the image encoding apparatus) performs decoding (orencoding) of parameters of flags tile_boundary_independence_flag,loop_filter_across_tile_flag, and loop_filter_across_slice_flag (S143).

Here, the flag tile_boundary_independence_flag is information indicatingwhether or not reference to information across a tile boundary isprohibited. The flag loop_filter_across_tile_flag is informationindicating whether or not filtering is executed on a tile boundary. Theflag loop_filter_across_slice_flag is information indicating whether ornot filtering is executed on a slice boundary.

These flags make it possible to skip encoding and decoding unnecessarycodes, thereby reducing the amount of codes.

As described above, the image encoding apparatus according to thisembodiment generates tile constraint information (constraint_tile_flag)indicating whether or not there is the constraint in encoding ordecoding of a plurality of tiles obtained by dividing a picture, andencodes the tile constraint information. In addition, when the tileconstraint information indicates that there is the constraint inencoding or decoding, the image encoding apparatus skips encoding ordecoding filter information (loop_filter_across_tile_flag) indicatingwhether or not filtering is executed on the plurality of tileboundaries.

Here, when encoding or decoding of the filter information is skipped,the image encoding apparatus and the image decoding apparatus cannotswitch execution or non-execution of filtering on each of the pluralityof tile boundaries. In other words, the plurality of tile boundaries aresubjected to an identical process (of filtering or skipping filtering).In this way, it is possible to reduce the amount of processing byprohibiting a switch between execution or non-execution of filtering ona per tile boundary basis.

FIG. 19B illustrates operations performed by the image encodingapparatus or the image decoding apparatus. As illustrated in FIG. 19B,the image encoding apparatus according to this embodiment generates tileconstraint information indicating whether or not there is any constraintin the filtering on the plurality of tiles obtained by dividing thepicture, and encodes the tile constraint information (S140A). When thetile constraint information indicates that there is a constraint in thefiltering (Yes in S141A), the image encoding apparatus performs anidentical process (of filtering or skipping filtering) on the pluralityof tile boundaries (S142A). On the other hand, when the tile constraintinformation indicates that there is no constraint in the filtering (Noin S141A), the image encoding apparatus performs an identical process ordifferent processes (of filtering or skipping filtering) on theplurality of tile boundaries (S143A).

In addition, the image decoding apparatus decodes tile constraintinformation indicating whether or not there is any constraint in thefiltering on the plurality of tiles obtained by dividing the picture(S140A). When the tile constraint information indicates that there is aconstraint in the filtering (Yes in S141A), the image encoding apparatusperforms an identical process (of filtering or skipping filtering) onthe plurality of tile boundaries (S142A). On the other hand, when thetile constraint information indicates that there is no constraint in thefiltering (No in S141A), the image encoding apparatus performs anidentical process or different processes (of filtering or skippingfiltering) on the plurality of tile boundaries (S143A).

In order to perform the identical process on the plurality of tileboundaries in this way, the image encoding apparatus or the imagedecoding apparatus may encode or decode only one of filter informationitems on one of the tile boundaries instead of skipping encoding ordecoding all of the filter information items for the plurality of tileboundaries. In other words, in this way, the image encoding apparatus orthe image decoding apparatus determines whether or not filtering isexecuted on the plurality of tile boundaries, based on the one of thefilter information items. More specifically, when the one filterinformation item indicates that filtering is executed on the tileboundaries, the image encoding apparatus or the image decoding apparatusexecutes filtering on all of the plurality of tile boundaries. On theother hand, when the one filter information item indicates that nofiltering is executed on the tile boundaries, the image encodingapparatus or the image decoding apparatus does not execute filtering onthe plurality of tile boundaries.

FIG. 19C illustrates operations performed by the image encodingapparatus or the image decoding apparatus in this case. As illustratedin FIG. 19C, when the tile constraint information indicates that thereis a constraint in the filtering (Yes in S141A), the image encodingapparatus or the image decoding apparatus determines whether or notfiltering is executed on the plurality of tile boundaries, based onfilter information indicating whether or not filtering is executed onone tile boundary among the plurality of tile boundaries (S142B). Inaddition, when the tile constraint information indicates that there isno constraint in the filtering (No in S141A), the image encodingapparatus or the image decoding apparatus determines whether or notfiltering is executed on the plurality of tile boundaries, based on theplurality of filter information items indicating whether or notfiltering is executed on the plurality of tile boundaries (S143B).

In other words, when the tile constraint information indicates thatthere is the constraint, the image encoding apparatus encodes filterinformation indicating whether or not filtering is executed on the onetile boundary, and skips encoding the information indicating whether ornot filtering is executed on the plurality of tile boundaries other thanthe one tile boundary. In other words, when the tile constraintinformation indicates that there is the constraint, the image decodingapparatus decodes filter information indicating whether or not filteringis executed on the one tile boundary, and skips decoding the informationindicating whether or not filtering is executed on the plurality of tileboundaries other than the one tile boundary.

Alternatively, the same value may be set to all of the plurality offilter information items. In other words, when the tile constraintinformation indicates that there is the constraint in the filtering, theimage encoding apparatus may encode the filter information itemsindicating the identical content (execution or non-execution offiltering), in association with each of the plurality of filterboundaries.

FIG. 19D illustrates operations performed by the image encodingapparatus or the image decoding apparatus in this case. As illustratedin FIG. 19D, when tile constraint information indicates that there is aconstraint (Yes in S141A), the image encoding apparatus encodes thefilter information item indicating the identical content, in associationwith each of the plurality of tile boundaries (S142C). On the otherhand, when the tile constraint information indicates that there is noconstraint in the filtering (No in S141A), the image encoding apparatusencodes the filter information items indicating the identical content ordifferent content, in association with the plurality of tile boundaries(S143C).

In addition, when tile constraint information indicates that there is aconstraint (Yes in S141A), the image decoding apparatus decodes theplurality of filter information items indicating the identical contentassociated with the plurality of tile boundaries (S142C). On the otherhand, when the tile constraint information indicates that there is noconstraint in the filtering (No in S141A), the image encoding apparatusdecodes the plurality of filter information items indicating theidentical content or different content associated with the plurality oftile boundaries (S143C).

The tile constraint information may be set for each picture. In otherwords, the image encoding apparatus generates tile constraintinformation for each picture, and encodes tile constraint informationfor each picture. In other words, the image decoding apparatus decodestile constraint information which has been set for each picture.

In addition, the processing is executed by the encoding unit and thedetermining unit included in the image encoding apparatus, or thedecoding unit and the determining unit included in the image decodingapparatus. For example, the encoding unit and the determining unit areincluded in the entropy encoding unit 220 illustrated in FIG. 13. Inaddition, the decoding unit and the determining unit are included in theentropy decoding unit 410 illustrated in FIG. 12.

Embodiment 4

In this embodiment, a description is given of a structure for reducingthe amount of information in the case of describing a flagstart_tile_in_slice_flag in a slice header.

FIG. 20A is a diagram illustrating an exemplary structure of a sliceheader according to a comparison example with respect to thisembodiment. On the other hand, FIG. 20B is a diagram illustrating anexemplary structure of a slice header in this embodiment. In addition,FIG. 21 is a flowchart indicating a flow of operations according to thisembodiment.

First, the image encoding apparatus (or the image decoding apparatus)encodes (or decodes) a flag (first_slice_in_pic_flag) indicating whetheror not a processing target slice is a first slice (S151). Next, whenthis flag is not 0 (first_slice_in_pic_flag!=0), in other words, whenthe processing target slice is the first slice (Yes in S152), the imageencoding apparatus (or image decoding apparatus) skips encoding (ordecoding) position information of the following slices, initial positioninformation of tiles, or the like (S153).

On the other hand, when this flag is 0 (first_slice_in_pic_flag=0), inother words, when the processing target slice is not a first slice (Noin S152), the image encoding apparatus (or the image decoding apparatus)encodes (or decodes) information (start_tile_in_slice_flag) indicatingwhether or not the processing target slice is at the top of a tile(S154).

Next, when this flag is 1 (start_tile_in_slice_flag=1), in other words,when the processing target slice is at the top of a tile (Yes in S155),the image encoding apparatus (or the image decoding apparatus) encodes(or decodes) information (tile_idx_minus1) indicating how many tiles aredisposed before the processing target tile (S156).

On the other hand, when this flag is 0 (start_tile_in_slice_flag=0), inother words, when the processing target slice is not at the top of atile (No in S155), the image encoding apparatus (or the image decodingapparatus) does not parse the position of the slice, and thus encodes(or decodes) the position information (slice_address) about the slice(S157). In this way, the image encoding apparatus (or the image decodingapparatus) can efficiently perform encoding (or decoding) withouttransmitting redundant information, and can increase a compression ratewhile increasing a parallel degree. In addition, the image decodingapparatus can correctly decode this stream.

It is to be noted that the information related to division into tiles isdisposed, for example, at a portion called a sequence parameter set formanaging information of the whole stream. In addition, for example, thisinformation may indicate the number of divisions of a frame in thevertical direction and in the horizontal direction. Alternatively, thisinformation may indicate the number of processing units into which theframe is divided. It is to be noted that each of the tiles obtainedthrough the divisions are processed according to a scan order (forexample, a raster san order) predetermined between the encoding anddecoding sides. For this reason, when the processing target slice is atthe top of the tile, with the information indicating how many tiles aredisposed before the processing target tile, it is possible to determinethe spatial position information of the processing target slice in theframe. In this way, it is possible to reduce slice address information.

In addition, when the processing target slice is at the top of thepicture, a tile number is always 1, and a slice address is (0, 0), andthus the information does not need to be encoded. In this way, it ispossible to reduce the amount of information.

Embodiment 5

In this embodiment, a tile header which holds tile number information(tile_idx_minus1) is used as information indicating a start position ofa tile.

FIG. 22 is a conceptual diagram illustrating a data structure in thisembodiment. As illustrated in FIG. 22, a tile header which isinformation indicating a start position of a tile is always disposedimmediately before a slice header. FIG. 23 is a flowchart indicating aflow of operations performed by an image encoding apparatus (or an imagedecoding apparatus) in this case.

First, the image encoding apparatus (or the image decoding apparatus)encodes (or decodes) a tile header (tile_header( ) (S161). In this way,the image encoding apparatus (or the image decoding apparatus) obtainsthe information indicating the top position of the tile, from a sequenceparameter set as described earlier, and determines the position of thetile in the frame.

Next, the image encoding apparatus (or the image decoding apparatus)encodes or decodes a slice header related to the tile (S162). In thisway, since the information necessary for decoding the tile is includedin the slice header, the image decoding apparatus can immediatelydetermine how to decode the tile. Thus, the image decoding apparatus canperform parallel processing at a high speed. In this say, when thetile_header( ) is disposed immediately before the slice_header( ) forexample, it is possible to omit a start code of the slice header.

In general, the tile_header( ) and the slice_header( ) are differentheaders, and thus different start codes are assigned thereto. On theother hand, when a slice header is always disposed immediately after atile header as in this embodiment, it is possible to omit a start codeof the slice header. In general, a start code is a special code having afixed length. Thus, omission of start codes contributes to significantreduction of redundant codes. In addition, even when a start code issearched for in order to load a header, this redundant search becomesunnecessary. Thus, it is possible to accelerate processing.

Embodiment 6

In this embodiment, a description is given of a case of modifyingencoding and decoding of parameters further using profile_idc. Theprofile_idc is profile information indicating information in the casewhere a stream is encoded or decoded.

FIG. 24 is a flowchart indicating a flow of operations performed by animage encoding apparatus (or an image decoding apparatus) in this case.For example, when the profile information indicates that a constrainttile is used (Yes in S171), the image encoding apparatus (or the imagedecoding apparatus) skips encoding (or decoding) information related tothe constraint (a related parameter) which is used when the processingtarget tile is the constraint tile, and sets the parameter for placingthe constraint (S172). Here, constraints are placed so as not to, forexample, perform filtering on a boundary, not to refer to information ofanother tile in encoding (or decoding) in a tile, and so on.

When the profile information does not indicate that the constraint tileis used (No in S171), the image encoding apparatus (or the imagedecoding apparatus) encodes (or decodes) information (a relatedparameter) indicating which information is constrained (S173).

For example, when profile information indicates that no tile is used,the image encoding apparatus (or the image decoding apparatus) skipsencoding (or decoding) tile-related information in headers such as allof sequence parameter sets, picture parameter sets, slice headers, etc.In this way, it is possible to reduce encoding and decoding of redundantinformation, to thereby realize fast processing and high compressionperformances.

It should be noted that the image encoding apparatus and the imagedecoding apparatus according to the above-described embodiments areexemplary non-limiting embodiments, and thus the scope of the presentdisclosure is not limited to such embodiments.

Each of the processing units included in the image encoding apparatusesand the image decoding apparatuses according to the above-describedembodiments is realized as an LSI which is typically an integratedcircuit. These processing units may be made as separate individualchips, or as a single chip to include a part or all thereof.

In addition, the means for circuit integration is not limited to an LSI,and implementation with a dedicated circuit or a general-purposeprocessor is also available. It is also possible to use a FieldProgrammable Gate Array (FPGA) that is programmable after the LSI ismanufactured, and a reconfigurable processor in which connections andsettings of circuit cells within the LSI are reconfigurable.

In the above embodiment, each of the structural elements may beconfigured with exclusive hardware or by executing a software programsuitable for each of the structural elements. Each of the structuralelements may be realized by means of the program executing unit such asa CPU or a processor reading and executing such a software programrecorded on a hard disc or a semiconductor memory.

Furthermore, the present disclosure may be realized as theabove-described software program, or as a non-transitorycomputer-readable recording medium on which the program is recorded. Inaddition, the program can naturally be distributed through communicationmedia such as the Internet.

In addition, all of the numerals used above are examples forspecifically explaining the present disclosure, and the scope of thepresent disclosure is not limited to the exemplary numerals.

In addition, divisions into functional blocks in the block diagrams arenon-limiting examples. Thus, some of the blocks may be realized as asignal functional block, one of the functional blocks may be divided,and/or part of functions of one of the functional blocks may betransferred to another one of the functional blocks. Similar functionsof some of the functional blocks may be processed in parallel or in timedivision by a single hardware item or software item.

It is to be noted that the processing order of the steps of each of theimage encoding methods and the image decoding methods is an example forspecifically explaining the present disclosure, and thus anotherprocessing order is possible. In addition, part of the steps may beexecuted at the same time (in parallel) when any of the other steps isexecuted.

It should be noted that although the image encoding apparatus and theimage decoding apparatus according to one or more aspects of the presentdisclosure have been described above based on the exemplary embodiments,the present disclosure is not limited to the embodiments. Those skilledin the art will readily appreciate that many modifications are possiblein the exemplary embodiments and other embodiments are possible byarbitrarily combining the structural elements of the embodiments withoutmaterially departing from the novel teachings and advantageous effectsof the present disclosure. Accordingly, all of the modifications andother embodiments are intended to be included within the scope of thepresent disclosure.

Embodiment 7

The processing described in each of embodiments can be simplyimplemented in an independent computer system, by recording, in arecording medium, one or more programs for implementing theconfigurations of the moving picture encoding method (image encodingmethod) and the moving picture decoding method (image decoding method)described in each of embodiments. The recording media may be anyrecording media as long as the program can be recorded, such as amagnetic disk, an optical disk, a magnetic optical disk, an IC card, anda semiconductor memory.

Hereinafter, the applications to the moving picture encoding method(image encoding method) and the moving picture decoding method (imagedecoding method) described in each of embodiments and systems usingthereof will be described. The system has a feature of having an imageencoding apparatus that includes an image encoding apparatus using theimage encoding method and an image decoding apparatus using the imagedecoding method. Other configurations in the system can be changed asappropriate depending on the cases.

FIG. 25 illustrates an overall configuration of a content providingsystem ex100 for implementing content distribution services. The areafor providing communication services is divided into cells of desiredsize, and base stations ex106, ex107, ex108, ex109, and ex110 which arefixed wireless stations are placed in each of the cells.

The content providing system ex100 is connected to devices, such as acomputer ex111, a personal digital assistant (PDA) ex112, a cameraex113, a cellular phone ex114 and a game machine ex115, via the Internetex101, an Internet service provider ex102, a telephone network ex104, aswell as the base stations ex106 to ex110, respectively.

However, the configuration of the content providing system ex100 is notlimited to the configuration shown in FIG. 25, and a combination inwhich any of the elements are connected is acceptable. In addition, eachdevice may be directly connected to the telephone network ex104, ratherthan via the base stations ex106 to ex110 which are the fixed wirelessstations. Furthermore, the devices may be interconnected to each othervia a short distance wireless communication and others.

The camera ex113, such as a digital video camera, is capable ofcapturing video. A camera ex116, such as a digital camera, is capable ofcapturing both still images and video. Furthermore, the cellular phoneex114 may be the one that meets any of the standards such as GlobalSystem for Mobile Communications (GSM) (registered trademark), CodeDivision Multiple Access (CDMA), Wideband-Code Division Multiple Access(W-CDMA), Long Term Evolution (LTE), and High Speed Packet Access(HSPA). Alternatively, the cellular phone ex114 may be a PersonalHandyphone System (PHS).

In the content providing system ex100, a streaming server ex103 isconnected to the camera ex113 and others via the telephone network ex104and the base station ex109, which enables distribution of images of alive show and others. In such a distribution, a content (for example,video of a music live show) captured by the user using the camera ex113is encoded as described above in each of embodiments (i.e., the camerafunctions as the image encoding apparatus according to an aspect of thepresent disclosure), and the encoded content is transmitted to thestreaming server ex103. On the other hand, the streaming server ex103carries out stream distribution of the transmitted content data to theclients upon their requests. The clients include the computer ex111, thePDA ex112, the camera ex113, the cellular phone ex114, and the gamemachine ex115 that are capable of decoding the above-mentioned encodeddata. Each of the devices that have received the distributed datadecodes and reproduces the encoded data (i.e., functions as the imagedecoding apparatus according to an aspect of the present disclosure).

The captured data may be encoded by the camera ex113 or the streamingserver ex103 that transmits the data, or the encoding processes may beshared between the camera ex113 and the streaming server ex103.Similarly, the distributed data may be decoded by the clients or thestreaming server ex103, or the decoding processes may be shared betweenthe clients and the streaming server ex103. Furthermore, the data of thestill images and video captured by not only the camera ex113 but alsothe camera ex116 may be transmitted to the streaming server ex103through the computer ex111. The encoding processes may be performed bythe camera ex116, the computer ex111, or the streaming server ex103, orshared among them.

Furthermore, the encoding processes may be performed by an LSI ex500generally included in each of the computer ex111 and the devices. TheLSI ex500 may be configured of a single chip or a plurality of chips.Software for encoding video may be integrated into some type of arecording medium (such as a CD-ROM, a flexible disk, and a hard disk)that is readable by the computer ex111 and others, and the encodingprocesses may be performed using the software. Furthermore, when thecellular phone ex114 is equipped with a camera, the video data obtainedby the camera may be transmitted. The video data is data encoded by theLSI ex500 included in the cellular phone ex114.

Furthermore, the streaming server ex103 may be composed of servers andcomputers, and may decentralize data and process the decentralized data,record, or distribute data.

As described above, the clients may receive and reproduce the encodeddata in the content providing system ex100. In other words, the clientscan receive and decode information transmitted by the user, andreproduce the decoded data in real time in the content providing systemex100, so that the user who does not have any particular right andequipment can implement personal broadcasting.

Aside from the example of the content providing system ex100, at leastone of the moving picture encoding apparatus (image encoding apparatus)described in each of embodiments may be implemented in a digitalbroadcasting system ex200 illustrated in FIG. 26. More specifically, abroadcast station ex201 communicates or transmits, via radio waves to abroadcast satellite ex202, multiplexed data obtained by multiplexingaudio data and others onto video data. The video data is data encoded bythe moving picture encoding method described in each of embodiments(i.e., data encoded by the image encoding apparatus according to anaspect of the present disclosure). Upon receipt of the multiplexed data,the broadcast satellite ex202 transmits radio waves for broadcasting.Then, a home-use antenna ex204 with a satellite broadcast receptionfunction receives the radio waves. Next, a device such as a television(receiver) ex300 and a set top box (STB) ex217 decodes the receivedmultiplexed data, and reproduces the decoded data (i.e., functions asthe image decoding apparatus according to an aspect of the presentdisclosure).

Furthermore, a reader/recorder ex218 (i) reads and decodes themultiplexed data recorded on a recording medium ex215, such as a DVD anda BD, or (i) encodes video signals in the recording medium ex215, and insome cases, writes data obtained by multiplexing an audio signal on theencoded data. The reader/recorder ex218 can include the moving picturedecoding apparatus or the moving picture encoding apparatus as shown ineach of embodiments. In this case, the reproduced video signals aredisplayed on the monitor ex219, and can be reproduced by another deviceor system using the recording medium ex215 on which the multiplexed datais recorded. It is also possible to implement the moving picturedecoding apparatus in the set top box ex217 connected to the cable ex203for a cable television or to the antenna ex204 for satellite and/orterrestrial broadcasting, so as to display the video signals on themonitor ex219 of the television ex300. The moving picture decodingapparatus may be implemented not in the set top box but in thetelevision ex300.

FIG. 27 illustrates the television (receiver) ex300 that uses the movingpicture encoding method and the moving picture decoding method describedin each of embodiments. The television ex300 includes: a tuner ex301that obtains or provides multiplexed data obtained by multiplexing audiodata onto video data, through the antenna ex204 or the cable ex203, etc.that receives a broadcast; a modulation/demodulation unit ex302 thatdemodulates the received multiplexed data or modulates data intomultiplexed data to be supplied outside; and amultiplexing/demultiplexing unit ex303 that demultiplexes the modulatedmultiplexed data into video data and audio data, or multiplexes videodata and audio data encoded by a signal processing unit ex306 into data.

The television ex300 further includes: a signal processing unit ex306including an audio signal processing unit ex304 and a video signalprocessing unit ex305 that code each of audio data and video data,(which function as the image encoding apparatus according to the aspectsof the present disclosure); and an output unit ex309 including a speakerex307 that provides the decoded audio signal, and a display unit ex308that displays the decoded video signal, such as a display. Furthermore,the television ex300 includes an interface unit ex317 including anoperation input unit ex312 that receives an input of a user operation.Furthermore, the television ex300 includes a control unit ex310 thatcontrols overall each constituent element of the television ex300, and apower supply circuit unit ex311 that supplies power to each of theelements. Other than the operation input unit ex312, the interface unitex317 may include: a bridge ex313 that is connected to an externaldevice, such as the reader/recorder ex218; a slot unit ex314 forenabling attachment of the recording medium ex216, such as an SD card; adriver ex315 to be connected to an external recording medium, such as ahard disk; and a modem ex316 to be connected to a telephone network.Here, the recording medium ex216 can electrically record informationusing a non-volatile/volatile semiconductor memory element for storage.The constituent elements of the television ex300 are connected to eachother through a synchronous bus.

First, the configuration in which the television ex300 decodesmultiplexed data obtained from outside through the antenna ex204 andothers and reproduces the decoded data will be described. In thetelevision ex300, upon a user operation through a remote controllerex220 and others, the multiplexing/demultiplexing unit ex303demultiplexes the multiplexed data demodulated by themodulation/demodulation unit ex302, under control of the control unitex310 including a CPU. Furthermore, the audio signal processing unitex304 decodes the demultiplexed audio data, and the video signalprocessing unit ex305 decodes the demultiplexed video data, using thedecoding method described in each of embodiments, in the televisionex300. The output unit ex309 provides the decoded video signal and audiosignal outside, respectively. When the output unit ex309 provides thevideo signal and the audio signal, the signals may be temporarily storedin buffers ex318 and ex319, and others so that the signals arereproduced in synchronization with each other. Furthermore, thetelevision ex300 may read multiplexed data not through a broadcast andothers but from the recording media ex215 and ex216, such as a magneticdisk, an optical disk, and a SD card. Next, a configuration in which thetelevision ex300 encodes an audio signal and a video signal, andtransmits the data outside or writes the data on a recording medium willbe described. In the television ex300, upon a user operation through theremote controller ex220 and others, the audio signal processing unitex304 encodes an audio signal, and the video signal processing unitex305 encodes a video signal, under control of the control unit ex310using the encoding method described in each of embodiments. Themultiplexing/demultiplexing unit ex303 multiplexes the encoded videosignal and audio signal, and provides the resulting signal outside. Whenthe multiplexing/demultiplexing unit ex303 multiplexes the video signaland the audio signal, the signals may be temporarily stored in thebuffers ex320 and ex321, and others so that the signals are reproducedin synchronization with each other. Here, the buffers ex318, ex319,ex320, and ex321 may be plural as illustrated, or at least one buffermay be shared in the television ex300. Furthermore, data may be storedin a buffer so that the system overflow and underflow may be avoidedbetween the modulation/demodulation unit ex302 and themultiplexing/demultiplexing unit ex303, for example.

Furthermore, the television ex300 may include a configuration forreceiving an AV input from a microphone or a camera other than theconfiguration for obtaining audio and video data from a broadcast or arecording medium, and may encode the obtained data. Although thetelevision ex300 can encode, multiplex, and provide outside data in thedescription, it may be capable of only receiving, decoding, andproviding outside data but not the encoding, multiplexing, and providingoutside data.

Furthermore, when the reader/recorder ex218 reads or writes multiplexeddata from or on a recording medium, one of the television ex300 and thereader/recorder ex218 may code the multiplexed data, and the televisionex300 and the reader/recorder ex218 may share the encoding partly.

As an example, FIG. 28 illustrates a configuration of an informationreproducing/recording unit ex400 when data is read or written from or onan optical disk. The information reproducing/recording unit ex400includes constituent elements ex401, ex402, ex403, ex404, ex405, ex406,and ex407 to be described hereinafter. The optical head ex401 irradiatesa laser spot in a recording surface of the recording medium ex215 thatis an optical disk to write information, and detects reflected lightfrom the recording surface of the recording medium ex215 to read theinformation. The modulation recording unit ex402 electrically drives asemiconductor laser included in the optical head ex401, and modulatesthe laser light according to recorded data. The reproductiondemodulating unit ex403 amplifies a reproduction signal obtained byelectrically detecting the reflected light from the recording surfaceusing a photo detector included in the optical head ex401, anddemodulates the reproduction signal by separating a signal componentrecorded on the recording medium ex215 to reproduce the necessaryinformation. The buffer ex404 temporarily holds the information to berecorded on the recording medium ex215 and the information reproducedfrom the recording medium ex215. The disk motor ex405 rotates therecording medium ex215. The servo control unit ex406 moves the opticalhead ex401 to a predetermined information track while controlling therotation drive of the disk motor ex405 so as to follow the laser spot.The system control unit ex407 controls overall the informationreproducing/recording unit ex400. The reading and writing processes canbe implemented by the system control unit ex407 using variousinformation stored in the buffer ex404 and generating and adding newinformation as necessary, and by the modulation recording unit ex402,the reproduction demodulating unit ex403, and the servo control unitex406 that record and reproduce information through the optical headex401 while being operated in a coordinated manner. The system controlunit ex407 includes, for example, a microprocessor, and executesprocessing by causing a computer to execute a program for read andwrite.

Although the optical head ex401 irradiates a laser spot in thedescription, it may perform high-density recording using near fieldlight.

FIG. 29 illustrates the recording medium ex215 that is the optical disk.On the recording surface of the recording medium ex215, guide groovesare spirally formed, and an information track ex230 records, in advance,address information indicating an absolute position on the diskaccording to change in a shape of the guide grooves. The addressinformation includes information for determining positions of recordingblocks ex231 that are a unit for recording data. Reproducing theinformation track ex230 and reading the address information in anapparatus that records and reproduces data can lead to determination ofthe positions of the recording blocks. Furthermore, the recording mediumex215 includes a data recording area ex233, an inner circumference areaex232, and an outer circumference area ex234. The data recording areaex233 is an area for use in recording the user data. The innercircumference area ex232 and the outer circumference area ex234 that areinside and outside of the data recording area ex233, respectively arefor specific use except for recording the user data. The informationreproducing/recording unit 400 reads and writes encoded audio, encodedvideo data, or multiplexed data obtained by multiplexing the encodedaudio and video data, from and on the data recording area ex233 of therecording medium ex215.

Although an optical disk having a layer, such as a DVD and a BD isdescribed as an example in the description, the optical disk is notlimited to such, and may be an optical disk having a multilayerstructure and capable of being recorded on a part other than thesurface. Furthermore, the optical disk may have a structure formultidimensional recording/reproduction, such as recording ofinformation using light of colors with different wavelengths in the sameportion of the optical disk and for recording information havingdifferent layers from various angles.

Furthermore, a car ex210 having an antenna ex205 can receive data fromthe satellite ex202 and others, and reproduce video on a display devicesuch as a car navigation system ex211 set in the car ex210, in thedigital broadcasting system ex200. Here, a configuration of the carnavigation system ex211 will be a configuration, for example, includinga GPS receiving unit from the configuration illustrated in FIG. 27. Thesame will be true for the configuration of the computer ex111, thecellular phone ex114, and others.

FIG. 30A illustrates the cellular phone ex114 that uses the movingpicture encoding method described in embodiments. The cellular phoneex114 includes: an antenna ex350 for transmitting and receiving radiowaves through the base station ex110; a camera unit ex365 capable ofcapturing moving and still images; and a display unit ex358 such as aliquid crystal display for displaying the data such as decoded videocaptured by the camera unit ex365 or received by the antenna ex350. Thecellular phone ex114 further includes: a main body unit including anoperation key unit ex366; an audio output unit ex357 such as a speakerfor output of audio; an audio input unit ex356 such as a microphone forinput of audio; a memory unit ex367 for storing captured video or stillpictures, recorded audio, encoded data of the received video, the stillpictures, e-mails, or others; and a slot unit ex364 that is an interfaceunit for a recording medium that stores data in the same manner as thememory unit ex367.

Next, an example of a configuration of the cellular phone ex114 will bedescribed with reference to FIG. 30B. In the cellular phone ex114, amain control unit ex360 designed to control overall each unit of themain body including the display unit ex358 as well as the operation keyunit ex366 is connected mutually, via a synchronous bus ex370, to apower supply circuit unit ex361, an operation input control unit ex362,a video signal processing unit ex355, a camera interface unit ex363, aliquid crystal display (LCD) control unit ex359, amodulation/demodulation unit ex352, a multiplexing/demultiplexing unitex353, an audio signal processing unit ex354, the slot unit ex364, andthe memory unit ex367.

When a call-end key or a power key is turned ON by a user's operation,the power supply circuit unit ex361 supplies the respective units withpower from a battery pack so as to activate the cell phone ex114.

In the cellular phone ex114, the audio signal processing unit ex354converts the audio signals collected by the audio input unit ex356 invoice conversation mode into digital audio signals under the control ofthe main control unit ex360 including a CPU, ROM, and RAM. Then, themodulation/demodulation unit ex352 performs spread spectrum processingon the digital audio signals, and the transmitting and receiving unitex351 performs digital-to-analog conversion and frequency conversion onthe data, so as to transmit the resulting data via the antenna ex350.Also, in the cellular phone ex114, the transmitting and receiving unitex351 amplifies the data received by the antenna ex350 in voiceconversation mode and performs frequency conversion and theanalog-to-digital conversion on the data. Then, themodulation/demodulation unit ex352 performs inverse spread spectrumprocessing on the data, and the audio signal processing unit ex354converts it into analog audio signals, so as to output them via theaudio output unit ex357.

Furthermore, when an e-mail in data communication mode is transmitted,text data of the e-mail inputted by operating the operation key unitex366 and others of the main body is sent out to the main control unitex360 via the operation input control unit ex362. The main control unitex360 causes the modulation/demodulation unit ex352 to perform spreadspectrum processing on the text data, and the transmitting and receivingunit ex351 performs the digital-to-analog conversion and the frequencyconversion on the resulting data to transmit the data to the basestation ex110 via the antenna ex350. When an e-mail is received,processing that is approximately inverse to the processing fortransmitting an e-mail is performed on the received data, and theresulting data is provided to the display unit ex358.

When video, still images, or video and audio in data communication modeis or are transmitted, the video signal processing unit ex355 compressesand encodes video signals supplied from the camera unit ex365 using themoving picture encoding method shown in each of embodiments (i.e.,functions as the image encoding apparatus according to the aspect of thepresent disclosure), and transmits the encoded video data to themultiplexing/demultiplexing unit ex353. In contrast, during when thecamera unit ex365 captures video, still images, and others, the audiosignal processing unit ex354 encodes audio signals collected by theaudio input unit ex356, and transmits the encoded audio data to themultiplexing/demultiplexing unit ex353.

The multiplexing/demultiplexing unit ex353 multiplexes the encoded videodata supplied from the video signal processing unit ex355 and theencoded audio data supplied from the audio signal processing unit ex354,using a predetermined method. Then, the modulation/demodulation unit(modulation/demodulation circuit unit) ex352 performs spread spectrumprocessing on the multiplexed data, and the transmitting and receivingunit ex351 performs digital-to-analog conversion and frequencyconversion on the data so as to transmit the resulting data via theantenna ex350.

When receiving data of a video file which is linked to a Web page andothers in data communication mode or when receiving an e-mail with videoand/or audio attached, in order to decode the multiplexed data receivedvia the antenna ex350, the multiplexing/demultiplexing unit ex353demultiplexes the multiplexed data into a video data bit stream and anaudio data bit stream, and supplies the video signal processing unitex355 with the encoded video data and the audio signal processing unitex354 with the encoded audio data, through the synchronous bus ex370.The video signal processing unit ex355 decodes the video signal using amoving picture decoding method corresponding to the moving pictureencoding method shown in each of embodiments (i.e., functions as theimage decoding apparatus according to the aspect of the presentdisclosure), and then the display unit ex358 displays, for instance, thevideo and still images included in the video file linked to the Web pagevia the LCD control unit ex359. Furthermore, the audio signal processingunit ex354 decodes the audio signal, and the audio output unit ex357provides the audio.

Furthermore, similarly to the television ex300, a terminal such as thecellular phone ex114 probably have 3 types of implementationconfigurations including not only (i) a transmitting and receivingterminal including both an encoding apparatus and a decoding apparatus,but also (ii) a transmitting terminal including only an encodingapparatus and (iii) a receiving terminal including only a decodingapparatus. Although the digital broadcasting system ex200 receives andtransmits the multiplexed data obtained by multiplexing audio data ontovideo data in the description, the multiplexed data may be data obtainedby multiplexing not audio data but character data related to video ontovideo data, and may be not multiplexed data but video data itself.

As such, the moving picture encoding method in each of embodiments canbe used in any of the devices and systems described. Thus, theadvantages described in each of embodiments can be obtained.

Furthermore, the present disclosure is not limited to embodiments, andvarious modifications and revisions are possible without departing fromthe scope of the present disclosure.

Embodiment 8

Video data can be generated by switching, as necessary, between (i) themoving picture encoding method or the moving picture encoding apparatusshown in each of embodiments and (ii) a moving picture encoding methodor a moving picture encoding apparatus in conformity with a differentstandard, such as MPEG-2, MPEG-4 AVC, and VC-1.

Here, when a plurality of video data that conforms to the differentstandards is generated and is then decoded, the decoding methods need tobe selected to conform to the different standards. However, since towhich standard each of the plurality of the video data to be decodedconform cannot be detected, there is a problem that an appropriatedecoding method cannot be selected.

In order to solve the problem, multiplexed data obtained by multiplexingaudio data and others onto video data has a structure includingidentification information indicating to which standard the video dataconforms. The specific structure of the multiplexed data including thevideo data generated in the moving picture encoding method and by themoving picture encoding apparatus shown in each of embodiments will behereinafter described. The multiplexed data is a digital stream in theMPEG-2 Transport Stream format.

FIG. 31 illustrates a structure of the multiplexed data. As illustratedin FIG. 31, the multiplexed data can be obtained by multiplexing atleast one of a video stream, an audio stream, a presentation graphicsstream (PG), and an interactive graphics stream. The video streamrepresents primary video and secondary video of a movie, the audiostream (IG) represents a primary audio part and a secondary audio partto be mixed with the primary audio part, and the presentation graphicsstream represents subtitles of the movie. Here, the primary video isnormal video to be displayed on a screen, and the secondary video isvideo to be displayed on a smaller window in the primary video.Furthermore, the interactive graphics stream represents an interactivescreen to be generated by arranging the GUI components on a screen. Thevideo stream is encoded in the moving picture encoding method or by themoving picture encoding apparatus shown in each of embodiments, or in amoving picture encoding method or by a moving picture encoding apparatusin conformity with a conventional standard, such as MPEG-2, MPEG-4 AVC,and VC-1. The audio stream is encoded in accordance with a standard,such as Dolby-AC-3, Dolby Digital Plus, MLP, DTS, DTS-HD, and linearPCM.

Each stream included in the multiplexed data is identified by PID. Forexample, 0x1011 is allocated to the video stream to be used for video ofa movie, 0x1100 to 0x111F are allocated to the audio streams, 0x1200 to0x121F are allocated to the presentation graphics streams, 0x1400 to0x141F are allocated to the interactive graphics streams, 0x1B00 to0x1B1F are allocated to the video streams to be used for secondary videoof the movie, and 0x1A00 to 0x1A1F are allocated to the audio streams tobe used for the secondary audio to be mixed with the primary audio.

FIG. 32 schematically illustrates how data is multiplexed. First, avideo stream ex235 composed of video frames and an audio stream ex238composed of audio frames are transformed into a stream of PES packetsex236 and a stream of PES packets ex239, and further into TS packetsex237 and TS packets ex240, respectively. Similarly, data of apresentation graphics stream ex241 and data of an interactive graphicsstream ex244 are transformed into a stream of PES packets ex242 and astream of PES packets ex245, and further into TS packets ex243 and TSpackets ex246, respectively. These TS packets are multiplexed into astream to obtain multiplexed data ex247.

FIG. 33 illustrates how a video stream is stored in a stream of PESpackets in more detail. The first bar in FIG. 33 shows a video framestream in a video stream. The second bar shows the stream of PESpackets. As indicated by arrows denoted as yy1, yy2, yy3, and yy4 inFIG. 33, the video stream is divided into pictures as I pictures, Bpictures, and P pictures each of which is a video presentation unit, andthe pictures are stored in a payload of each of the PES packets. Each ofthe PES packets has a PES header, and the PES header stores aPresentation Time-Stamp (PTS) indicating a display time of the picture,and a Decoding Time-Stamp (DTS) indicating a decoding time of thepicture.

FIG. 34 illustrates a format of TS packets to be finally written on themultiplexed data. Each of the TS packets is a 188-byte fixed lengthpacket including a 4-byte TS header having information, such as a PIDfor identifying a stream and a 184-byte TS payload for storing data. ThePES packets are divided, and stored in the TS payloads, respectively.When a BD ROM is used, each of the TS packets is given a 4-byteTP_Extra_Header, thus resulting in 192-byte source packets. The sourcepackets are written on the multiplexed data. The TP_Extra_Header storesinformation such as an Arrival_Time_Stamp (ATS). The ATS shows atransfer start time at which each of the TS packets is to be transferredto a PID filter. The source packets are arranged in the multiplexed dataas shown at the bottom of FIG. 34. The numbers incrementing from thehead of the multiplexed data are called source packet numbers (SPNs).

Each of the TS packets included in the multiplexed data includes notonly streams of audio, video, subtitles and others, but also a ProgramAssociation Table (PAT), a Program Map Table (PMT), and a Program ClockReference (PCR). The PAT shows what a PID in a PMT used in themultiplexed data indicates, and a PID of the PAT itself is registered aszero. The PMT stores PIDs of the streams of video, audio, subtitles andothers included in the multiplexed data, and attribute information ofthe streams corresponding to the PIDs. The PMT also has variousdescriptors relating to the multiplexed data. The descriptors haveinformation such as copy control information showing whether copying ofthe multiplexed data is permitted or not. The PCR stores STC timeinformation corresponding to an ATS showing when the PCR packet istransferred to a decoder, in order to achieve synchronization between anArrival Time Clock (ATC) that is a time axis of ATSs, and an System TimeClock (STC) that is a time axis of PTSs and DTSs.

FIG. 35 illustrates the data structure of the PMT in detail. A PMTheader is disposed at the top of the PMT. The PMT header describes thelength of data included in the PMT and others. A plurality ofdescriptors relating to the multiplexed data is disposed after the PMTheader. Information such as the copy control information is described inthe descriptors. After the descriptors, a plurality of pieces of streaminformation relating to the streams included in the multiplexed data isdisposed. Each piece of stream information includes stream descriptorseach describing information, such as a stream type for identifying acompression codec of a stream, a stream PID, and stream attributeinformation (such as a frame rate or an aspect ratio). The streamdescriptors are equal in number to the number of streams in themultiplexed data.

When the multiplexed data is recorded on a recording medium and others,it is recorded together with multiplexed data information files.

Each of the multiplexed data information files is management informationof the multiplexed data as shown in FIG. 36. The multiplexed datainformation files are in one to one correspondence with the multiplexeddata, and each of the files includes multiplexed data information,stream attribute information, and an entry map.

As illustrated in FIG. 36, the multiplexed data information includes asystem rate, a reproduction start time, and a reproduction end time. Thesystem rate indicates the maximum transfer rate at which a system targetdecoder to be described later transfers the multiplexed data to a PIDfilter. The intervals of the ATSs included in the multiplexed data areset to not higher than a system rate. The reproduction start timeindicates a PTS in a video frame at the head of the multiplexed data. Aninterval of one frame is added to a PTS in a video frame at the end ofthe multiplexed data, and the PTS is set to the reproduction end time.

As shown in FIG. 37, a piece of attribute information is registered inthe stream attribute information, for each PID of each stream includedin the multiplexed data. Each piece of attribute information hasdifferent information depending on whether the corresponding stream is avideo stream, an audio stream, a presentation graphics stream, or aninteractive graphics stream. Each piece of video stream attributeinformation carries information including what kind of compression codecis used for compressing the video stream, and the resolution, aspectratio and frame rate of the pieces of picture data that is included inthe video stream. Each piece of audio stream attribute informationcarries information including what kind of compression codec is used forcompressing the audio stream, how many channels are included in theaudio stream, which language the audio stream supports, and how high thesampling frequency is. The video stream attribute information and theaudio stream attribute information are used for initialization of adecoder before the player plays back the information.

In the present embodiment, the multiplexed data to be used is of astream type included in the PMT. Furthermore, when the multiplexed datais recorded on a recording medium, the video stream attributeinformation included in the multiplexed data information is used. Morespecifically, the moving picture encoding method or the moving pictureencoding apparatus described in each of embodiments includes a step or aunit for allocating unique information indicating video data generatedby the moving picture encoding method or the moving picture encodingapparatus in each of embodiments, to the stream type included in the PMTor the video stream attribute information. With the configuration, thevideo data generated by the moving picture encoding method or the movingpicture encoding apparatus described in each of embodiments can bedistinguished from video data that conforms to another standard.

Furthermore, FIG. 38 illustrates steps of the moving picture decodingmethod according to the present embodiment. In Step exS100, the streamtype included in the PMT or the video stream attribute informationincluded in the multiplexed data information is obtained from themultiplexed data. Next, in Step exS101, it is determined whether or notthe stream type or the video stream attribute information indicates thatthe multiplexed data is generated by the moving picture encoding methodor the moving picture encoding apparatus in each of embodiments. When itis determined that the stream type or the video stream attributeinformation indicates that the multiplexed data is generated by themoving picture encoding method or the moving picture encoding apparatusin each of embodiments, in Step exS102, decoding is performed by themoving picture decoding method in each of embodiments. Furthermore, whenthe stream type or the video stream attribute information indicatesconformance to the conventional standards, such as MPEG-2, MPEG-4 AVC,and VC-1, in Step exS103, decoding is performed by a moving picturedecoding method in conformity with the conventional standards.

As such, allocating a new unique value to the stream type or the videostream attribute information enables determination whether or not themoving picture decoding method or the moving picture decoding apparatusthat is described in each of embodiments can perform decoding. Even whenmultiplexed data that conforms to a different standard is input, anappropriate decoding method or apparatus can be selected. Thus, itbecomes possible to decode information without any error. Furthermore,the moving picture encoding method or apparatus, or the moving picturedecoding method or apparatus in the present embodiment can be used inthe devices and systems described above.

Embodiment 9

Each of the moving picture encoding method and the moving pictureencoding apparatus in each of embodiments is typically achieved in theform of an integrated circuit or a Large Scale Integrated (LSI) circuit.As an example of the LSI, FIG. 39 illustrates a configuration of the LSIex500 that is made into one chip. The LSI ex500 includes elements ex501,ex502, ex503, ex504, ex505, ex506, ex507, ex508, and ex509 to bedescribed below, and the elements are connected to each other through abus ex510. The power supply circuit unit ex505 is activated by supplyingeach of the elements with power when the power supply circuit unit ex505is turned on.

For example, when encoding is performed, the LSI ex500 receives an AVsignal from a microphone ex117, a camera ex113, and others through an AVIO ex509 under control of a control unit ex501 including a CPU ex502, amemory controller ex503, a stream controller ex504, and a drivingfrequency control unit ex512. The received AV signal is temporarilystored in an external memory ex511, such as an SDRAM. Under control ofthe control unit ex501, the stored data is segmented into data portionsaccording to the processing amount and speed to be transmitted to asignal processing unit ex507. Then, the signal processing unit ex507encodes an audio signal and/or a video signal. Here, the encoding of thevideo signal is the encoding described in each of embodiments.Furthermore, the signal processing unit ex507 sometimes multiplexes theencoded audio data and the encoded video data, and a stream IO ex506provides the multiplexed data outside. The provided multiplexed data istransmitted to the base station ex107, or written on the recordingmedium ex215. When data sets are multiplexed, the data should betemporarily stored in the buffer ex508 so that the data sets aresynchronized with each other.

Although the memory ex511 is an element outside the LSI ex500, it may beincluded in the LSI ex500. The buffer ex508 is not limited to onebuffer, but may be composed of buffers. Furthermore, the LSI ex500 maybe made into one chip or a plurality of chips.

Furthermore, although the control unit ex501 includes the CPU ex502, thememory controller ex503, the stream controller ex504, the drivingfrequency control unit ex512, the configuration of the control unitex501 is not limited to such. For example, the signal processing unitex507 may further include a CPU. Inclusion of another CPU in the signalprocessing unit ex507 can improve the processing speed. Furthermore, asanother example, the CPU ex502 may serve as or be a part of the signalprocessing unit ex507, and, for example, may include an audio signalprocessing unit. In such a case, the control unit ex501 includes thesignal processing unit ex507 or the CPU ex502 including a part of thesignal processing unit ex507.

The name used here is LSI, but it may also be called IC, system LSI,super LSI, or ultra LSI depending on the degree of integration.

Moreover, ways to achieve integration are not limited to the LSI, and aspecial circuit or a general purpose processor and so forth can alsoachieve the integration. Field Programmable Gate Array (FPGA) that canbe programmed after manufacturing LSIs or a reconfigurable processorthat allows re-configuration of the connection or configuration of anLSI can be used for the same purpose. Moreover, ways to achieveintegration are not limited to the LSI, and a special circuit or ageneral purpose processor and so forth can also achieve the integration.Field Programmable Gate Array (FPGA) that can be programmed aftermanufacturing LSIs or a reconfigurable processor that allowsre-configuration of the connection or configuration of an LSI can beused for the same purpose. Such a programmable logic device cantypically execute the moving picture encoding method according to any ofthe above embodiments, by loading or reading from a memory or the likeone or more programs that are included in software or firmware.

In the future, with advancement in semiconductor technology, a brand-newtechnology may replace LSI. The functional blocks can be integratedusing such a technology. The possibility is that the present disclosureis applied to biotechnology.

Embodiment 10

When video data generated in the moving picture encoding method or bythe moving picture encoding apparatus described in each of embodimentsis decoded, compared to when video data that conforms to a conventionalstandard, such as MPEG-2, MPEG-4 AVC, and VC-1 is decoded, theprocessing amount probably increases. Thus, the LSI ex500 needs to beset to a driving frequency higher than that of the CPU ex502 to be usedwhen video data in conformity with the conventional standard is decoded.there is a problem that the power consumption increases.

In order to solve the problem, the moving picture decoding apparatus,such as the television ex300 and the LSI ex500 is configured todetermine to which standard the video data conforms, and switch betweenthe driving frequencies according to the determined standard. FIG. 40illustrates a configuration ex800 in the present embodiment. A drivingfrequency switching unit ex803 sets a driving frequency to a higherdriving frequency when video data is generated by the moving pictureencoding method or the moving picture encoding apparatus described ineach of embodiments. Then, the driving frequency switching unit ex803instructs a decoding processing unit ex801 that executes the movingpicture decoding method described in each of embodiments to decode thevideo data. When the video data conforms to the conventional standard,the driving frequency switching unit ex803 sets a driving frequency to alower driving frequency than that of the video data generated by themoving picture encoding method or the moving picture encoding apparatusdescribed in each of embodiments. Then, the driving frequency switchingunit ex803 instructs the decoding processing unit ex802 that conforms tothe conventional standard to decode the video data.

More specifically, the driving frequency switching unit ex803 includesthe CPU ex502 and the driving frequency control unit ex512 in FIG. 39.Here, each of the decoding processing unit ex801 that executes themoving picture decoding method described in each of embodiments and thedecoding processing unit ex802 that conforms to the conventionalstandard corresponds to the signal processing unit ex507 in FIG. 39. TheCPU ex502 determines to which standard the video data conforms. Then,the driving frequency control unit ex512 determines a driving frequencybased on a signal from the CPU ex502. Furthermore, the signal processingunit ex507 decodes the video data based on the signal from the CPUex502. For example, the identification information described inEmbodiment 8 is probably used for identifying the video data. Theidentification information is not limited to the one described inEmbodiment 8 but may be any information as long as the informationindicates to which standard the video data conforms. For example, whenwhich standard video data conforms to can be determined based on anexternal signal for determining that the video data is used for atelevision or a disk, etc., the determination may be made based on suchan external signal. Furthermore, the CPU ex502 selects a drivingfrequency based on, for example, a look-up table in which the standardsof the video data are associated with the driving frequencies as shownin FIG. 42. The driving frequency can be selected by storing the look-uptable in the buffer ex508 and in an internal memory of an LSI, and withreference to the look-up table by the CPU ex502.

FIG. 41 illustrates steps for executing a method in the presentembodiment. First, in Step exS200, the signal processing unit ex507obtains identification information from the multiplexed data. Next, inStep exS201, the CPU ex502 determines whether or not the video data isgenerated by the encoding method and the encoding apparatus described ineach of embodiments, based on the identification information. When thevideo data is generated by the moving picture encoding method and themoving picture encoding apparatus described in each of embodiments, inStep exS202, the CPU ex502 transmits a signal for setting the drivingfrequency to a higher driving frequency to the driving frequency controlunit ex512. Then, the driving frequency control unit ex512 sets thedriving frequency to the higher driving frequency. On the other hand,when the identification information indicates that the video dataconforms to the conventional standard, such as MPEG-2, MPEG-4 AVC, andVC-1, in Step exS203, the CPU ex502 transmits a signal for setting thedriving frequency to a lower driving frequency to the driving frequencycontrol unit ex512. Then, the driving frequency control unit ex512 setsthe driving frequency to the lower driving frequency than that in thecase where the video data is generated by the moving picture encodingmethod and the moving picture encoding apparatus described in each ofembodiment.

Furthermore, along with the switching of the driving frequencies, thepower conservation effect can be improved by changing the voltage to beapplied to the LSI ex500 or an apparatus including the LSI ex500. Forexample, when the driving frequency is set lower, the voltage to beapplied to the LSI ex500 or the apparatus including the LSI ex500 isprobably set to a voltage lower than that in the case where the drivingfrequency is set higher.

Furthermore, when the processing amount for decoding is larger, thedriving frequency may be set higher, and when the processing amount fordecoding is smaller, the driving frequency may be set lower as themethod for setting the driving frequency. Thus, the setting method isnot limited to the ones described above. For example, when theprocessing amount for decoding video data in conformity with MPEG-4 AVCis larger than the processing amount for decoding video data generatedby the moving picture encoding method and the moving picture encodingapparatus described in each of embodiments, the driving frequency isprobably set in reverse order to the setting described above.

Furthermore, the method for setting the driving frequency is not limitedto the method for setting the driving frequency lower. For example, whenthe identification information indicates that the video data isgenerated by the moving picture encoding method and the moving pictureencoding apparatus described in each of embodiments, the voltage to beapplied to the LSI ex500 or the apparatus including the LSI ex500 isprobably set higher. When the identification information indicates thatthe video data conforms to the conventional standard, such as MPEG-2,MPEG-4 AVC, and VC-1, the voltage to be applied to the LSI ex500 or theapparatus including the LSI ex500 is probably set lower. As anotherexample, when the identification information indicates that the videodata is generated by the moving picture encoding method and the movingpicture encoding apparatus described in each of embodiments, the drivingof the CPU ex502 does not probably have to be suspended. When theidentification information indicates that the video data conforms to theconventional standard, such as MPEG-2, MPEG-4 AVC, and VC-1, the drivingof the CPU ex502 is probably suspended at a given time because the CPUex502 has extra processing capacity. Even when the identificationinformation indicates that the video data is generated by the movingpicture encoding method and the moving picture encoding apparatusdescribed in each of embodiments, in the case where the CPU ex502 hasextra processing capacity, the driving of the CPU ex502 is probablysuspended at a given time. In such a case, the suspending time isprobably set shorter than that in the case where when the identificationinformation indicates that the video data conforms to the conventionalstandard, such as MPEG-2, MPEG-4 AVC, and VC-1.

Accordingly, the power conservation effect can be improved by switchingbetween the driving frequencies in accordance with the standard to whichthe video data conforms. Furthermore, when the LSI ex500 or theapparatus including the LSI ex500 is driven using a battery, the batterylife can be extended with the power conservation effect.

Embodiment 11

There are cases where a plurality of video data that conforms todifferent standards, is provided to the devices and systems, such as atelevision and a cellular phone. In order to enable decoding theplurality of video data that conforms to the different standards, thesignal processing unit ex507 of the LSI ex500 needs to conform to thedifferent standards. However, the problems of increase in the scale ofthe circuit of the LSI ex500 and increase in the cost arise with theindividual use of the signal processing units ex507 that conform to therespective standards.

In order to solve the problem, what is conceived is a configuration inwhich the decoding processing unit for implementing the moving picturedecoding method described in each of embodiments and the decodingprocessing unit that conforms to the conventional standard, such asMPEG-2, MPEG-4 AVC, and VC-1 are partly shared. Ex900 in FIG. 43A showsan example of the configuration. For example, the moving picturedecoding method described in each of embodiments and the moving picturedecoding method that conforms to MPEG-4 AVC have, partly in common, thedetails of processing, such as entropy encoding, inverse quantization,deblocking filtering, and motion compensated prediction. The details ofprocessing to be shared probably include use of a decoding processingunit ex902 that conforms to MPEG-4 AVC. In contrast, a dedicateddecoding processing unit ex901 is probably used for other processingwhich is unique to an aspect of the present disclosure and does notconform to MPEG-4 AVC. Since the aspect of the present disclosure ischaracterized by entropy decoding in particular, for example, thededicated decoding processing unit ex901 is used for entropy decoding.Otherwise, the decoding processing unit is probably shared for one ofthe inverse quantization, deblocking filtering, and motion compensation,or all of the processing. The decoding processing unit for implementingthe moving picture decoding method described in each of embodiments maybe shared for the processing to be shared, and a dedicated decodingprocessing unit may be used for processing unique to that of MPEG-4 AVC.

Furthermore, ex1000 in FIG. 43B shows another example in that processingis partly shared. This example uses a configuration including adedicated decoding processing unit ex1001 that supports the processingunique to an aspect of the present disclosure, a dedicated decodingprocessing unit ex1002 that supports the processing unique to anotherconventional standard, and a decoding processing unit ex1003 thatsupports processing to be shared between the moving picture decodingmethod according to the aspect of the present disclosure and theconventional moving picture decoding method. Here, the dedicateddecoding processing units ex1001 and ex1002 are not necessarilyspecialized for the processing according to the aspect of the presentdisclosure and the processing of the conventional standard,respectively, and may be the ones capable of implementing generalprocessing. Furthermore, the configuration of the present embodiment canbe implemented by the LSI ex500.

As such, reducing the scale of the circuit of an LSI and reducing thecost are possible by sharing the decoding processing unit for theprocessing to be shared between the moving picture decoding methodaccording to the aspect of the present disclosure and the moving picturedecoding method in conformity with the conventional standard.

INDUSTRIAL APPLICABILITY

The image encoding method, the image decoding method, the image encodingapparatus, and the image decoding apparatus according to one or moreexemplary embodiments disclosed herein are available in variousapplications such as data accumulation, transmission, communication, andso on. Specifically, the methods and apparatuses are applicable toinformation display apparatuses and imaging apparatuses such astelevision receivers, digital video recorders, car navigation systems,mobile phones, digital still cameras, and digital video cameras.

The invention claimed is:
 1. An image decoding apparatus which decodes astream of data that includes a plurality of pictures, tile constraintinformation in a sequence parameter set and a plurality of filterinformation items in a plurality of picture parameter sets, the tileconstraint information indicating whether or not there is a constraintuniformly in the plurality of pictures in filtering on tile boundariesbetween adjacent tiles among a plurality of tiles into which a pictureis divided, each of the plurality of filter information items indicatingwhether or not the filtering is executed per an each-picture basis, theimage decoding apparatus comprising: a processor; and a memory having aprogram stored thereon, the program causing the processor to executeoperations including: obtaining the sequence parameter set from thestream, wherein the sequence parameter set is to be used in common forthe plurality of pictures included in the stream; obtaining the tileconstraint information included in the sequence parameter set; obtainingone of the plurality of picture parameter sets from the stream;obtaining, from the one of the plurality of picture parameter sets, onefilter information item among the plurality of filter information items;decoding the plurality of pictures, (i) when the tile constraintinformation indicates that there is constraint in the filtering, and theone filter information item indicates that the filtering is executed,determining that the filtering is executed on all of the tile boundariesin the plurality of pictures, (ii) when the tile constraint informationindicates that there is constraint in the filtering and the one filterinformation item indicates that the filtering is not executed,determining the filtering is not executed on any of the tile boundariesin the plurality of pictures, (iii) when the tile constraint informationindicates that there is not constraint in the filtering and the onefilter information item indicates that the filtering is executed,determining the filtering is executed in a picture which includes theobtained one of the plurality of picture parameter set, (iv) when thetile constraint information indicates that there is not constraint inthe filtering and the one filter information item indicates that thefiltering is not executed, determining the filtering is not executed inthe picture, wherein the tiles are defined by HEVC standard.
 2. Theimage decoding apparatus according to claim 1, wherein the tileconstraint information indicates whether filtering is executed per theplurality-of-pictures basis or per the each-picture basis.
 3. The imagedecoding apparatus according to claim 1, wherein the tile constraintinformation is used only in determining of filtering on the tileboundaries and not used in determining of filtering on boundaries otherthan the tile boundaries.